home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / Icons.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  17KB  |  477 lines

  1. /*
  2.      File:        Icons.h
  3.  
  4.      Contains:    Icon Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __ICONS__
  19. #define __ICONS__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __QUICKDRAW__
  25. #include <Quickdraw.h>
  26. #endif
  27.  
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31.  
  32. #if PRAGMA_IMPORT_SUPPORTED
  33. #pragma import on
  34. #endif
  35.  
  36. #if PRAGMA_ALIGN_SUPPORTED
  37. #pragma options align=mac68k
  38. #endif
  39.  
  40.  
  41. enum {
  42.                                                                 /* The following are icons for which there are both icon suites and SICNs. */
  43.     kGenericDocumentIconResource = -4000,
  44.     kGenericStationeryIconResource = -3985,
  45.     kGenericEditionFileIconResource = -3989,
  46.     kGenericApplicationIconResource = -3996,
  47.     kGenericDeskAccessoryIconResource = -3991,
  48.     kGenericFolderIconResource    = -3999,
  49.     kPrivateFolderIconResource    = -3994,
  50.     kFloppyIconResource            = -3998,
  51.     kTrashIconResource            = -3993,
  52.     kGenericRAMDiskIconResource    = -3988,
  53.     kGenericCDROMIconResource    = -3987,                        /* The following are icons for which there are SICNs only. */
  54.     kDesktopIconResource        = -3992,
  55.     kOpenFolderIconResource        = -3997,
  56.     kGenericHardDiskIconResource = -3995,
  57.     kGenericFileServerIconResource = -3972,
  58.     kGenericSuitcaseIconResource = -3970,
  59.     kGenericMoverObjectIconResource = -3969,                    /* The following are icons for which there are icon suites only. */
  60.     kGenericPreferencesIconResource = -3971,
  61.     kGenericQueryDocumentIconResource = -16506,
  62.     kGenericExtensionIconResource = -16415,
  63.     kSystemFolderIconResource    = -3983,
  64.     kAppleMenuFolderIconResource = -3982
  65. };
  66.  
  67.  
  68. enum {
  69.                                                                 /* Obsolete. Use named constants defined above. */
  70.     genericDocumentIconResource    = kGenericDocumentIconResource,
  71.     genericStationeryIconResource = kGenericStationeryIconResource,
  72.     genericEditionFileIconResource = kGenericEditionFileIconResource,
  73.     genericApplicationIconResource = kGenericApplicationIconResource,
  74.     genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource,
  75.     genericFolderIconResource    = kGenericFolderIconResource,
  76.     privateFolderIconResource    = kPrivateFolderIconResource,
  77.     floppyIconResource            = kFloppyIconResource,
  78.     trashIconResource            = kPrivateFolderIconResource,
  79.     genericRAMDiskIconResource    = kGenericRAMDiskIconResource,
  80.     genericCDROMIconResource    = kGenericCDROMIconResource,
  81.     desktopIconResource            = kDesktopIconResource,
  82.     openFolderIconResource        = kOpenFolderIconResource,
  83.     genericHardDiskIconResource    = kGenericHardDiskIconResource,
  84.     genericFileServerIconResource = kGenericFileServerIconResource,
  85.     genericSuitcaseIconResource    = kGenericSuitcaseIconResource,
  86.     genericMoverObjectIconResource = kGenericMoverObjectIconResource,
  87.     genericPreferencesIconResource = kGenericPreferencesIconResource,
  88.     genericQueryDocumentIconResource = kGenericQueryDocumentIconResource,
  89.     genericExtensionIconResource = kGenericExtensionIconResource,
  90.     systemFolderIconResource    = kSystemFolderIconResource,
  91.     appleMenuFolderIconResource    = kAppleMenuFolderIconResource
  92. };
  93.  
  94.  
  95. enum {
  96.     kStartupFolderIconResource    = -3981,
  97.     kOwnedFolderIconResource    = -3980,
  98.     kDropFolderIconResource        = -3979,
  99.     kSharedFolderIconResource    = -3978,
  100.     kMountedFolderIconResource    = -3977,
  101.     kControlPanelFolderIconResource = -3976,
  102.     kPrintMonitorFolderIconResource = -3975,
  103.     kPreferencesFolderIconResource = -3974,
  104.     kExtensionsFolderIconResource = -3973,
  105.     kFontsFolderIconResource    = -3968,
  106.     kFullTrashIconResource        = -3984
  107. };
  108.  
  109.  
  110. enum {
  111.                                                                 /* Obsolete. Use named constants defined above. */
  112.     startupFolderIconResource    = kStartupFolderIconResource,
  113.     ownedFolderIconResource        = kOwnedFolderIconResource,
  114.     dropFolderIconResource        = kDropFolderIconResource,
  115.     sharedFolderIconResource    = kSharedFolderIconResource,
  116.     mountedFolderIconResource    = kMountedFolderIconResource,
  117.     controlPanelFolderIconResource = kControlPanelFolderIconResource,
  118.     printMonitorFolderIconResource = kPrintMonitorFolderIconResource,
  119.     preferencesFolderIconResource = kPreferencesFolderIconResource,
  120.     extensionsFolderIconResource = kExtensionsFolderIconResource,
  121.     fontsFolderIconResource        = kFontsFolderIconResource,
  122.     fullTrashIconResource        = kFullTrashIconResource
  123. };
  124.  
  125.  
  126. enum {
  127.     kLarge1BitMask                = 'ICN#',
  128.     kLarge4BitData                = 'icl4',
  129.     kLarge8BitData                = 'icl8',
  130.     kSmall1BitMask                = 'ics#',
  131.     kSmall4BitData                = 'ics4',
  132.     kSmall8BitData                = 'ics8',
  133.     kMini1BitMask                = 'icm#',
  134.     kMini4BitData                = 'icm4',
  135.     kMini8BitData                = 'icm8'
  136. };
  137.  
  138.  
  139. enum {
  140.                                                                 /* Obsolete. Use names defined above. */
  141.     large1BitMask                = kLarge1BitMask,
  142.     large4BitData                = kLarge4BitData,
  143.     large8BitData                = kLarge8BitData,
  144.     small1BitMask                = kSmall1BitMask,
  145.     small4BitData                = kSmall4BitData,
  146.     small8BitData                = kSmall8BitData,
  147.     mini1BitMask                = kMini1BitMask,
  148.     mini4BitData                = kMini4BitData,
  149.     mini8BitData                = kMini8BitData
  150. };
  151.  
  152. /*  alignment type values */
  153.  
  154. enum {
  155.     kAlignNone                    = 0x00,
  156.     kAlignVerticalCenter        = 0x01,
  157.     kAlignTop                    = 0x02,
  158.     kAlignBottom                = 0x03,
  159.     kAlignHorizontalCenter        = 0x04,
  160.     kAlignAbsoluteCenter        = kAlignVerticalCenter | kAlignHorizontalCenter,
  161.     kAlignCenterTop                = kAlignTop | kAlignHorizontalCenter,
  162.     kAlignCenterBottom            = kAlignBottom | kAlignHorizontalCenter,
  163.     kAlignLeft                    = 0x08,
  164.     kAlignCenterLeft            = kAlignVerticalCenter | kAlignLeft,
  165.     kAlignTopLeft                = kAlignTop | kAlignLeft,
  166.     kAlignBottomLeft            = kAlignBottom | kAlignLeft,
  167.     kAlignRight                    = 0x0C,
  168.     kAlignCenterRight            = kAlignVerticalCenter | kAlignRight,
  169.     kAlignTopRight                = kAlignTop | kAlignRight,
  170.     kAlignBottomRight            = kAlignBottom | kAlignRight
  171. };
  172.  
  173.  
  174. enum {
  175.                                                                 /* Obsolete. Use names defined above. */
  176.     atNone                        = kAlignNone,
  177.     atVerticalCenter            = kAlignVerticalCenter,
  178.     atTop                        = kAlignTop,
  179.     atBottom                    = kAlignBottom,
  180.     atHorizontalCenter            = kAlignHorizontalCenter,
  181.     atAbsoluteCenter            = kAlignAbsoluteCenter,
  182.     atCenterTop                    = kAlignCenterTop,
  183.     atCenterBottom                = kAlignCenterBottom,
  184.     atLeft                        = kAlignLeft,
  185.     atCenterLeft                = kAlignCenterLeft,
  186.     atTopLeft                    = kAlignTopLeft,
  187.     atBottomLeft                = kAlignBottomLeft,
  188.     atRight                        = kAlignRight,
  189.     atCenterRight                = kAlignCenterRight,
  190.     atTopRight                    = kAlignTopRight,
  191.     atBottomRight                = kAlignBottomRight
  192. };
  193.  
  194. typedef SInt16 IconAlignmentType;
  195. /*  transform type values  */
  196.  
  197. enum {
  198.     kTransformNone                = 0x00,
  199.     kTransformDisabled            = 0x01,
  200.     kTransformOffline            = 0x02,
  201.     kTransformOpen                = 0x03,
  202.     kTransformLabel1            = 0x0100,
  203.     kTransformLabel2            = 0x0200,
  204.     kTransformLabel3            = 0x0300,
  205.     kTransformLabel4            = 0x0400,
  206.     kTransformLabel5            = 0x0500,
  207.     kTransformLabel6            = 0x0600,
  208.     kTransformLabel7            = 0x0700,
  209.     kTransformSelected            = 0x4000,
  210.     kTransformSelectedDisabled    = kTransformSelected | kTransformDisabled,
  211.     kTransformSelectedOffline    = kTransformSelected | kTransformOffline,
  212.     kTransformSelectedOpen        = kTransformSelected | kTransformOpen
  213. };
  214.  
  215.  
  216. enum {
  217.                                                                 /* Obsolete. Use names defined above. */
  218.     ttNone                        = kTransformNone,
  219.     ttDisabled                    = kTransformDisabled,
  220.     ttOffline                    = kTransformOffline,
  221.     ttOpen                        = kTransformOpen,
  222.     ttLabel1                    = kTransformLabel1,
  223.     ttLabel2                    = kTransformLabel2,
  224.     ttLabel3                    = kTransformLabel3,
  225.     ttLabel4                    = kTransformLabel4,
  226.     ttLabel5                    = kTransformLabel5,
  227.     ttLabel6                    = kTransformLabel6,
  228.     ttLabel7                    = kTransformLabel7,
  229.     ttSelected                    = kTransformSelected,
  230.     ttSelectedDisabled            = kTransformSelectedDisabled,
  231.     ttSelectedOffline            = kTransformSelectedOffline,
  232.     ttSelectedOpen                = kTransformSelectedOpen
  233. };
  234.  
  235. typedef SInt16 IconTransformType;
  236. /*  Selector mask values  */
  237.  
  238. enum {
  239.     kSelectorLarge1Bit            = 0x00000001,
  240.     kSelectorLarge4Bit            = 0x00000002,
  241.     kSelectorLarge8Bit            = 0x00000004,
  242.     kSelectorSmall1Bit            = 0x00000100,
  243.     kSelectorSmall4Bit            = 0x00000200,
  244.     kSelectorSmall8Bit            = 0x00000400,
  245.     kSelectorMini1Bit            = 0x00010000,
  246.     kSelectorMini4Bit            = 0x00020000,
  247.     kSelectorMini8Bit            = 0x00040000,
  248.     kSelectorAllLargeData        = 0x000000FF,
  249.     kSelectorAllSmallData        = 0x0000FF00,
  250.     kSelectorAllMiniData        = 0x00FF0000,
  251.     kSelectorAll1BitData        = kSelectorLarge1Bit | kSelectorSmall1Bit | kSelectorMini1Bit,
  252.     kSelectorAll4BitData        = kSelectorLarge4Bit | kSelectorSmall4Bit | kSelectorMini4Bit,
  253.     kSelectorAll8BitData        = kSelectorLarge8Bit | kSelectorSmall8Bit | kSelectorMini8Bit,
  254.     kSelectorAllAvailableData    = 0xFFFFFFFF
  255. };
  256.  
  257.  
  258. enum {
  259.                                                                 /* Obsolete. Use names defined above. */
  260.     svLarge1Bit                    = kSelectorLarge1Bit,
  261.     svLarge4Bit                    = kSelectorLarge4Bit,
  262.     svLarge8Bit                    = kSelectorLarge8Bit,
  263.     svSmall1Bit                    = kSelectorSmall1Bit,
  264.     svSmall4Bit                    = kSelectorSmall4Bit,
  265.     svSmall8Bit                    = kSelectorSmall8Bit,
  266.     svMini1Bit                    = kSelectorMini1Bit,
  267.     svMini4Bit                    = kSelectorMini4Bit,
  268.     svMini8Bit                    = kSelectorMini8Bit,
  269.     svAllLargeData                = kSelectorAllLargeData,
  270.     svAllSmallData                = kSelectorAllSmallData,
  271.     svAllMiniData                = kSelectorAllMiniData,
  272.     svAll1BitData                = kSelectorAll1BitData,
  273.     svAll4BitData                = kSelectorAll4BitData,
  274.     svAll8BitData                = kSelectorAll8BitData,
  275.     svAllAvailableData            = kSelectorAllAvailableData
  276. };
  277.  
  278. typedef UInt32 IconSelectorValue;
  279. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  280. typedef pascal OSErr (*IconActionProcPtr)(ResType theType, Handle *theIcon, void *yourDataPtr);
  281.  
  282. #if GENERATINGCFM
  283. typedef UniversalProcPtr IconActionUPP;
  284. #else
  285. typedef IconActionProcPtr IconActionUPP;
  286. #endif
  287.  
  288. enum {
  289.     uppIconActionProcInfo = kPascalStackBased
  290.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  291.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType)))
  292.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle *)))
  293.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
  294. };
  295.  
  296. #if GENERATINGCFM
  297. #define NewIconActionProc(userRoutine)        \
  298.         (IconActionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture())
  299. #else
  300. #define NewIconActionProc(userRoutine)        \
  301.         ((IconActionUPP) (userRoutine))
  302. #endif
  303.  
  304. #if GENERATINGCFM
  305. #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr)        \
  306.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIconActionProcInfo, (theType), (theIcon), (yourDataPtr))
  307. #else
  308. #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr)        \
  309.         (*(userRoutine))((theType), (theIcon), (yourDataPtr))
  310. #endif
  311. typedef IconActionProcPtr IconAction;
  312. typedef pascal Handle (*IconGetterProcPtr)(ResType theType, void *yourDataPtr);
  313.  
  314. #if GENERATINGCFM
  315. typedef UniversalProcPtr IconGetterUPP;
  316. #else
  317. typedef IconGetterProcPtr IconGetterUPP;
  318. #endif
  319.  
  320. enum {
  321.     uppIconGetterProcInfo = kPascalStackBased
  322.          | RESULT_SIZE(SIZE_CODE(sizeof(Handle)))
  323.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType)))
  324.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
  325. };
  326.  
  327. #if GENERATINGCFM
  328. #define NewIconGetterProc(userRoutine)        \
  329.         (IconGetterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture())
  330. #else
  331. #define NewIconGetterProc(userRoutine)        \
  332.         ((IconGetterUPP) (userRoutine))
  333. #endif
  334.  
  335. #if GENERATINGCFM
  336. #define CallIconGetterProc(userRoutine, theType, yourDataPtr)        \
  337.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIconGetterProcInfo, (theType), (yourDataPtr))
  338. #else
  339. #define CallIconGetterProc(userRoutine, theType, yourDataPtr)        \
  340.         (*(userRoutine))((theType), (yourDataPtr))
  341. #endif
  342. typedef IconGetterProcPtr IconGetter;
  343. #if !OLDROUTINELOCATIONS
  344. struct CIcon {
  345.     PixMap                             iconPMap;                    /*the icon's pixMap*/
  346.     BitMap                             iconMask;                    /*the icon's mask*/
  347.     BitMap                             iconBMap;                    /*the icon's bitMap*/
  348.     Handle                             iconData;                    /*the icon's data*/
  349.     SInt16                             iconMaskData[1];            /*icon's mask and BitMap data*/
  350. };
  351. typedef struct CIcon CIcon;
  352.  
  353. typedef CIcon *CIconPtr;
  354. typedef CIconPtr *CIconHandle;
  355. extern pascal CIconHandle GetCIcon(SInt16 iconID)
  356.  ONEWORDINLINE(0xAA1E);
  357.  
  358. extern pascal void PlotCIcon(const Rect *theRect, CIconHandle theIcon)
  359.  ONEWORDINLINE(0xAA1F);
  360.  
  361. extern pascal void DisposeCIcon(CIconHandle theIcon)
  362.  ONEWORDINLINE(0xAA25);
  363.  
  364. #endif
  365. extern pascal Handle GetIcon(SInt16 iconID)
  366.  ONEWORDINLINE(0xA9BB);
  367.  
  368. extern pascal void PlotIcon(const Rect *theRect, Handle theIcon)
  369.  ONEWORDINLINE(0xA94B);
  370.  
  371. extern pascal OSErr PlotIconID(const Rect *theRect, IconAlignmentType align, IconTransformType transform, SInt16 theResID)
  372.  THREEWORDINLINE(0x303C, 0x0500, 0xABC9);
  373.  
  374. extern pascal OSErr NewIconSuite(Handle *theIconSuite)
  375.  THREEWORDINLINE(0x303C, 0x0207, 0xABC9);
  376.  
  377. extern pascal OSErr AddIconToSuite(Handle theIconData, Handle theSuite, ResType theType)
  378.  THREEWORDINLINE(0x303C, 0x0608, 0xABC9);
  379.  
  380. extern pascal OSErr GetIconFromSuite(Handle *theIconData, Handle theSuite, ResType theType)
  381.  THREEWORDINLINE(0x303C, 0x0609, 0xABC9);
  382.  
  383. extern pascal OSErr ForEachIconDo(Handle theSuite, IconSelectorValue selector, IconActionUPP action, void *yourDataPtr)
  384.  THREEWORDINLINE(0x303C, 0x080A, 0xABC9);
  385.  
  386. extern pascal OSErr GetIconSuite(Handle *theIconSuite, SInt16 theResID, IconSelectorValue selector)
  387.  THREEWORDINLINE(0x303C, 0x0501, 0xABC9);
  388.  
  389. extern pascal OSErr DisposeIconSuite(Handle theIconSuite, Boolean disposeData)
  390.  THREEWORDINLINE(0x303C, 0x0302, 0xABC9);
  391.  
  392. extern pascal OSErr PlotIconSuite(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite)
  393.  THREEWORDINLINE(0x303C, 0x0603, 0xABC9);
  394.  
  395. extern pascal OSErr MakeIconCache(Handle *theHandle, IconGetterUPP makeIcon, void *yourDataPtr)
  396.  THREEWORDINLINE(0x303C, 0x0604, 0xABC9);
  397.  
  398. extern pascal OSErr LoadIconCache(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconCache)
  399.  THREEWORDINLINE(0x303C, 0x0606, 0xABC9);
  400.  
  401. extern pascal OSErr PlotIconMethod(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconGetterUPP theMethod, void *yourDataPtr)
  402.  THREEWORDINLINE(0x303C, 0x0805, 0xABC9);
  403.  
  404. extern pascal OSErr GetLabel(SInt16 labelNumber, RGBColor *labelColor, Str255 labelString)
  405.  THREEWORDINLINE(0x303C, 0x050B, 0xABC9);
  406.  
  407. extern pascal Boolean PtInIconID(Point testPt, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
  408.  THREEWORDINLINE(0x303C, 0x060D, 0xABC9);
  409.  
  410. extern pascal Boolean PtInIconSuite(Point testPt, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
  411.  THREEWORDINLINE(0x303C, 0x070E, 0xABC9);
  412.  
  413. extern pascal Boolean PtInIconMethod(Point testPt, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
  414.  THREEWORDINLINE(0x303C, 0x090F, 0xABC9);
  415.  
  416. extern pascal Boolean RectInIconID(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
  417.  THREEWORDINLINE(0x303C, 0x0610, 0xABC9);
  418.  
  419. extern pascal Boolean RectInIconSuite(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
  420.  THREEWORDINLINE(0x303C, 0x0711, 0xABC9);
  421.  
  422. extern pascal Boolean RectInIconMethod(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
  423.  THREEWORDINLINE(0x303C, 0x0912, 0xABC9);
  424.  
  425. extern pascal OSErr IconIDToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
  426.  THREEWORDINLINE(0x303C, 0x0613, 0xABC9);
  427.  
  428. extern pascal OSErr IconSuiteToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
  429.  THREEWORDINLINE(0x303C, 0x0714, 0xABC9);
  430.  
  431. extern pascal OSErr IconMethodToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
  432.  THREEWORDINLINE(0x303C, 0x0915, 0xABC9);
  433.  
  434. extern pascal OSErr SetSuiteLabel(Handle theSuite, SInt16 theLabel)
  435.  THREEWORDINLINE(0x303C, 0x0316, 0xABC9);
  436.  
  437. extern pascal SInt16 GetSuiteLabel(Handle theSuite)
  438.  THREEWORDINLINE(0x303C, 0x0217, 0xABC9);
  439.  
  440. extern pascal OSErr GetIconCacheData(Handle theCache, void **theData)
  441.  THREEWORDINLINE(0x303C, 0x0419, 0xABC9);
  442.  
  443. extern pascal OSErr SetIconCacheData(Handle theCache, void *theData)
  444.  THREEWORDINLINE(0x303C, 0x041A, 0xABC9);
  445.  
  446. extern pascal OSErr GetIconCacheProc(Handle theCache, IconGetterUPP *theProc)
  447.  THREEWORDINLINE(0x303C, 0x041B, 0xABC9);
  448.  
  449. extern pascal OSErr SetIconCacheProc(Handle theCache, IconGetterUPP theProc)
  450.  THREEWORDINLINE(0x303C, 0x041C, 0xABC9);
  451.  
  452. extern pascal OSErr PlotIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon)
  453.  THREEWORDINLINE(0x303C, 0x061D, 0xABC9);
  454.  
  455. extern pascal OSErr PlotSICNHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN)
  456.  THREEWORDINLINE(0x303C, 0x061E, 0xABC9);
  457.  
  458. extern pascal OSErr PlotCIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon)
  459.  THREEWORDINLINE(0x303C, 0x061F, 0xABC9);
  460.  
  461. #endif
  462.  
  463. #if PRAGMA_ALIGN_SUPPORTED
  464. #pragma options align=reset
  465. #endif
  466.  
  467. #if PRAGMA_IMPORT_SUPPORTED
  468. #pragma import off
  469. #endif
  470.  
  471. #ifdef __cplusplus
  472. }
  473. #endif
  474.  
  475. #endif /* __ICONS__ */
  476.  
  477.